#include "stdlib.h"
#include "stdio.h"

#define SUCCESS 1
#define FAILURE -1

//typedef char BaseType;
typedef int Status; //success:1, failure:-1

struct _ListNode;
typedef struct _ListNode* p_ListNode;
typedef struct _ListNode ListNode;

typedef void (*ListDataPrintFunc)(void* data);

p_ListNode get_node(p_ListNode list, int index);
Status get_element(p_ListNode list, int index, void* data);
int get_length(p_ListNode list);
Status insert_node(p_ListNode list, int index, void* data);
Status delete_node(p_ListNode list, int index, void* data);
p_ListNode create_link_list(char* file_name);
void destroy_link_list(p_ListNode list);
//void print_node(p_ListNode p);
void print_list(p_ListNode list, ListDataPrintFunc print_data);
void print_char(void* data);
void print_int(void* data);
